/**
 *文件用途说明：com_ui_Xtooltip 提示
 *作者：徐国南
 *制作日期： 2013-3-21
 *修改日期： 2013-3-22
			 2013-4-10 
					.点击body隐藏Xtooltip(待进一步优化 init 处执行两遍的问题)
 **/
;(function($) {
	$.extend({
		"Xtooltip" : function(options) {
			options = $.extend({
				element : ".tip",
				event : "click"
			}, options);

			//是否已生成tip标签
			//var status=0;

			//单例
			var Tip = {
				status:0,
				//tip标签class
				tipElement : ".Xtooltip",
				//tip标签
				_html : '<div class="Xtooltip"><div class="hd"><s></s><a class="close" href="javascript:void(0);">关闭</a></div><div class="bd"></div></div>',
				//显示
				show : function(e, attrTit) {
					var $target = $(e.target);
					//重置内容
					this.reset(attrTit);
					//console.log(arguments.length)

					//显示tip
					$(this.tipElement).show();
					//隐藏
					$(this.tipElement).delegate(".close", "click", $.proxy(this.hide, this));
					
					//定位
					this.pos(e);
					this.status = 1;
				},
				//重置内容
				reset : function(attrTit) {
					$(this.tipElement).find(".bd").html(attrTit);
				},
				//隐藏
				hide : function() {
					$(this.tipElement).hide();
					this.reset();
					this.status = 0;
				},
				//定位
				pos : function(e) {
					var $target = $(e.target), window_width = $(window).width(), window_height = $(window).height(), window_scroll_top = $(window).scrollTop(), window_scroll_left = $(window).scrollLeft(), target_positon_top = $target.position().top, target_positon_left = $target.position().left, target_offset_top = $target.offset().top, target_offset_left = $target.offset().left, target_scroll_top = $target.scrollTop(), target_scroll_left = $target.scrollLeft(), target_current_scroll_top = target_offset_top - window_scroll_top, target_current_scroll_left = target_offset_left - window_scroll_left, target_height = $target.height(), target_width = $target.width();

					//获取 tip标签的 _width 属性
					if ($target.attr('_width')) {
						$(this.tipElement).width($target.attr('_width') + "px");
					}

					var tipElement_height = $(this.tipElement).height(), tipElement_width = $(this.tipElement).width();

					if (target_current_scroll_top < window_height / 2) {
						$(this.tipElement).css({
							top : target_offset_top + target_height + 10 + 'px'
						});
					} else if (target_current_scroll_top > window_height / 2) {
						$(this.tipElement).css({
							top : target_offset_top - tipElement_height - 10 + 'px'
						});
					}

					if (target_current_scroll_left < window_width / 2) {
						$(this.tipElement).css({
							left : target_offset_left + target_width + 10 + 'px'
						});
					} else if (target_current_scroll_left > window_width / 2) {
						$(this.tipElement).css({
							left : target_offset_left - tipElement_width - 10 + 'px'
						});
					}
				},
				//初始
				init : function() {
					//触发tip的对象指针
					var self=this,
						$target_el=$(options.element);
						$(this._html).appendTo("body");

					$target_el.each(function(i) {
						var attrTit = $(this).attr("title");
						var _attr = $(this).attr("_title", attrTit);
						$(this).attr("title", "");

						$($target_el[i]).bind(options.event, function(e){
							e.preventDefault();
							self.show(e, $(this).attr("_title"));
						});
					});

					$("body").click(function(e){
						var $target=$(e.target);
						if($target.attr("class") != self.tipElement.substr(1)){
							if($target.attr("class") == options.element.substr(1)){
								self.show(e);
							}else{
							    self.hide();
							}
						}
					});

				}
			};

			//初始
			Tip.init();
		}
	});
})(jQuery); 